package cn.px.dao.vo;

import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * @Description 菜单权限
 * @author 品讯科技
 * @date 2024-08
 * @Version Copyright (c) 2019,北京乾元坤和科技有限公司 All rights reserved.
 */
@Data
public class SysMenuVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 菜单ID
     */
    private String menuId;
    /**
     * 菜单名称
     */
    private String name;

    /**
     * 客户端
     */
    private String clientId;

    /**
     * 菜单权限标识
     */
    private String permission;
    /**
     * 父菜单ID
     */
    private String parentId;
    /**
     * 父级
     */
    private String parentName;
    /**
     * 图标
     */
    private String icon;
    /**
     * 一个路径
     */
    private String path;
    /**
     * VUE页面
     */
    private String component;
    /**
     * 排序值
     */
    private Integer sort;
    /**
     * 菜单类型 （0菜单 1按钮）
     */
    private Integer type;
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 权限前台是否可见：0不可见，1可见
     */
    private Boolean visible;

    /**
     * 0--正常 1--删除
     */
    private String delFlag;

    /**
     * 创建人
     */
    private String createdUserName;

    /**
     * 修改人
     */
    private String updateUserName;

    /**
     * 转发请求
     */
    private String redirect;

    /**
     * 标题
     */
    private String title;

    /**
     * 是否隐藏头部:1.表示是，0表是否
     */
    private Boolean hiddenHeaderContent;

    /**
     * 打开页签方式
     */
    private String target;

    @Override
    public int hashCode() {
        return menuId.hashCode();
    }

    /**
     * menuId 相同则相同
     *
     * @param obj
     * @return
     */
    @Override
    public boolean equals(Object obj) {
        if (obj instanceof SysMenuVO) {
            String targetMenuId = ((SysMenuVO) obj).getMenuId();
            return menuId.equals(targetMenuId);
        }
        return super.equals(obj);
    }
}
